
package org.drip.service.prosper;

/*
 * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 */

/*!
 * Copyright (C) 2016 Lakshmi Krishnamurthy
 * Copyright (C) 2015 Lakshmi Krishnamurthy
 * 
 *  This file is part of DRIP, a free-software/open-source library for fixed income analysts and developers -
 * 		http://www.credit-trader.org/Begin.html
 * 
 *  DRIP is a free, full featured, fixed income rates, credit, and FX analytics library with a focus towards
 *  	pricing/valuation, risk, and market making.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *   	you may not use this file except in compliance with the License.
 *   
 *  You may obtain a copy of the License at
 *  	http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing, software
 *  	distributed under the License is distributed on an "AS IS" BASIS,
 *  	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  
 *  See the License for the specific language governing permissions and
 *  	limitations under the License.
 */

/**
 * CPRCDRLoan captures the Attributes of a Loan whose Cash Flows are projected using the specified CPR and
 * 	CDR Scenarios.
 *
 * @author Lakshmi Krishnamurthy
 */

public class CPRCDRLoan {

	/**
	 * Construct an Instance of the Constant Payment Loan
	 * 
	 * @param strName Mortgage Bond Instance Name
	 * @param dtEffective Effective Date
	 * @param strCurrency Currency
	 * @param iNumPayment The (Maximum) Number of Payments
	 * @param strDayCount Coupon/Accrual Day Count
	 * @param iPayFrequency Pay Frequency
	 * @param dblCouponRate The Coupon Rate
	 * @param dblFeeRate The Fee Rate
	 * @param dblFixedMonthlyAmount The Fixed Monthly Amount
	 * @param dblInitialNotional The Initial Bond Notional
	 * 
	 * @return Instance of the Constant Payment Loan
	 */

	public static final org.drip.product.credit.BondComponent ConstantPayment (
		final java.lang.String strName,
		final org.drip.analytics.date.JulianDate dtEffective,
		final java.lang.String strCurrency,
		final int iNumPayment,
		final java.lang.String strDayCount,
		final int iPayFrequency,
		final double dblCouponRate,
		final double dblFeeRate,
		final double dblFixedMonthlyAmount,
		final double dblInitialNotional)
	{
		return org.drip.product.creator.ConstantPaymentBondBuilder.Standard (strName, dtEffective,
			strCurrency, iNumPayment, strDayCount, iPayFrequency, dblCouponRate, dblFeeRate,
				dblFixedMonthlyAmount, dblInitialNotional);
	}
}
